#include "os/os.h"

#include <stdio.h>

namespace l8
{

int OS::SNPrintF(Vector<char> str, const char* format, ...)
{
    va_list args;
    va_start(args, format);
    int result = VSNPrintF(str, format, args);
    va_end(args);
    return result;
}


int OS::VSNPrintF(Vector<char> str,
                  const char* format,
                  va_list args)
{
    int n = vsnprintf(str.start(), str.length(), format, args);
    if (n < 0 || n >= str.length())
    {
        str[str.length() - 1] = '\0';
        return -1;
    }

    return n;
}

} // namespace l8
